import re
from utils import load_json_to_dict

keywords_data = load_json_to_dict("output.json")


def find_first_keyword_match(text):
    """
    在文本中查找第一个匹配的关键词并返回对应的分类ID

    参数:
    text -- 要搜索的文本
    keywords_data -- 包含关键词和分类ID的数据列表

    返回:
    找到的第一个关键词的分类ID，如果没有找到则返回None
    """
    try:
        # 预编译正则表达式，提高效率
        patterns = [
            (
                item["keyword"],
                re.compile(re.escape(item["keyword"])),
                item["category_id"],
            )
            for item in keywords_data
        ]

        # 查找第一个匹配项
        for keyword, pattern, category_id in patterns:
            if pattern.search(text):
                # print(f"找到的第一个关键词: {keyword}, 对应的id: {category_id}")
                return category_id
        return None
    
    except FileNotFoundError:
        print("无法找到分类文件")
    except Exception as e:
        print(f"发生错误: {str(e)}")